using System;
using ns27;
using Triton.Game.Mono;

namespace Triton.Game.Mapping
{
	[Attribute38("FriendlyChallengeDialog")]
	public class FriendlyChallengeDialog : DialogBase
	{
		[Attribute38("FriendlyChallengeDialog.Info")]
		public class Info : MonoClass
		{
			public BnetPlayer m_challenger => method_3<BnetPlayer>("m_challenger");

			public Info(IntPtr address, string className)
				: base(address, className)
			{
			}

			public Info(IntPtr address)
				: this(address, "Info")
			{
			}
		}

		public UberText m_challengeText => method_3<UberText>("m_challengeText");

		public UberText m_challengerName => method_3<UberText>("m_challengerName");

		public UIBButton m_acceptButton => method_3<UIBButton>("m_acceptButton");

		public UIBButton m_denyButton => method_3<UIBButton>("m_denyButton");

		public UberText m_nearbyPlayerNote => method_3<UberText>("m_nearbyPlayerNote");

		public float m_friendQuestSliderSoundDelay => method_2<float>("m_friendQuestSliderSoundDelay");

		public string m_friendQuestSliderSound => method_4("m_friendQuestSliderSound");

		public float m_friendQuestSliderSoundDelay2 => method_2<float>("m_friendQuestSliderSoundDelay2");

		public string m_friendQuestSliderSound2 => method_4("m_friendQuestSliderSound2");

		public GameObject m_friendQuestContainer => method_3<GameObject>("m_friendQuestContainer");

		public GameObject m_dropShadow => method_3<GameObject>("m_dropShadow");

		public Achievement m_quest => method_3<Achievement>("m_quest");

		public FriendlyChallengeQuestFrame m_friendlyQuestFrame => method_3<FriendlyChallengeQuestFrame>("m_friendlyQuestFrame");

		public static float NAME_LINE_PADDING => MonoClass.smethod_6<float>(TritonHs.MainAssemblyPath, "", "FriendlyChallengeDialog", "NAME_LINE_PADDING");

		public FriendlyChallengeDialog(IntPtr address, string className)
			: base(address, className)
		{
		}

		public FriendlyChallengeDialog(IntPtr address)
			: this(address, "FriendlyChallengeDialog")
		{
		}

		public void Start()
		{
			method_8("Start");
		}

		public void Update()
		{
			method_8("Update");
		}

		public new void Show()
		{
			method_8("Show");
		}

		public new void Hide()
		{
			method_8("Hide");
		}

		public new bool HandleKeyboardInput()
		{
			return method_11<bool>("HandleKeyboardInput", Array.Empty<object>());
		}

		public void SetInfo(Info info)
		{
			method_8("SetInfo", info);
		}

		public void SetQuestInfo_OnLoadRewardObject(Reward reward, object callbackData)
		{
			method_8("SetQuestInfo_OnLoadRewardObject", reward, callbackData);
		}

		public void ConfirmButtonPress(UIEvent e)
		{
			method_8("ConfirmButtonPress", e);
		}

		public void CancelButtonPress(UIEvent e)
		{
			method_8("CancelButtonPress", e);
		}
	}
}
